var PhotosBrowser = {
	viewingId : 0,
	timer : null,
	
	/**
	 * Загружаем готовый html списка фотограий
	 */
	loadAlbumPhotos : function(albumId) {
		var __self = this;
		
		$.ajax ({
			url:  baseURI+'/photos/ajax_get_album_photos/'+albumId,
			dataType: 'html',
			type: 'get',
			error: function () { new Error ('Произошла ошибка!');  },
			success: function (html) {
				$('#photos_browser').html(html);
				
				__self.moveToSelected($('#list_photo_'+__self.viewingId).addClass('selected'));
			}
		});
	},
	
	/**
	 * Прокручиваем к просматриваемой фотографии
	 */
	moveToSelected : function(element) {
		var __self = this;
		
		var offsetLeft = element.position().left;
		var wrapperWidth = $('#photos_browser').innerWidth();
		
		if (offsetLeft <= wrapperWidth/2 || $('#photos_browser_list').outerWidth(true) <= $('#photos_browser').outerWidth(true)) {
			return;
		}
		
		var needOffsetLeft = -(offsetLeft - wrapperWidth/2);
		var normalOffset = $('#photos_browser').width() - $('#photos_browser_list').outerWidth(true);
		
		this.timer = setInterval(function() {
			var currentOffsetLeft = $('#photos_browser_list').position().left;
			
			if (currentOffsetLeft <= needOffsetLeft) {
				$('#photos_browser_list').css('left', needOffsetLeft+'px');
				__self.stopScroll();
				return false;
			}
			
			if ($('#photos_browser_list').outerWidth(true) + currentOffsetLeft <= $('#photos_browser').width()) {
				$('#photos_browser_list').css('left', normalOffset+'px');
				__self.stopScroll();
				return false;
			}
			
			$('#photos_browser_list').css('left', (currentOffsetLeft - 16)+'px');
		}, 1);
	},
	
	/**
	 * Кручение вправо
	 */
	scrollRight : function() {
		var __self = this;
		
		if (this.timer !== null || $('#photos_browser_list').outerWidth(true) <= $('#photos_browser').outerWidth(true)) {
			return;
		}
		
		var normalOffset = $('#photos_browser').width() - $('#photos_browser_list').outerWidth(true);
		
		this.timer = setInterval(function() {
			var offsetLeft = $('#photos_browser_list').position().left;
			
			if ($('#photos_browser_list').outerWidth(true) + offsetLeft <= $('#photos_browser').width()) {
				$('#photos_browser_list').css('left', normalOffset+'px');
				__self.stopScroll();
				return false;
			}
			
			$('#photos_browser_list').css('left', (offsetLeft - 4)+'px');
		}, 1);
	},
	
	/**
	 * Соответственно, лево
	 */
	scrollLeft : function() {
		var __self = this;
		
		if (this.timer !== null) {
			return;
		}
		
		this.timer = setInterval(function() {
			var offsetLeft = $('#photos_browser_list').position().left;
			
			if (offsetLeft >= 0) {
				$('#photos_browser_list').css('left', '0px');
				__self.stopScroll();
				return false;
			}
			
			$('#photos_browser_list').css('left', (offsetLeft + 4)+'px');
		}, 1);
	},
	
	/**
	 * Стопаем кручение куда-либо
	 */
	stopScroll : function() {
		clearInterval(this.timer);
		this.timer = null;
	}
};

var Photo = {
	vote : function(photoId, mark) {
		if (mark != 1) {
			mark = 0;
		}
		
		$.ajax ({
			url:  baseURI+'/photos/ajax_vote_photo/'+photoId+'/'+mark+'?scode='+scode,
			dataType: 'xml',
			type: 'get',
			error: function () { new Error ('Произошла ошибка!');  },
			success: function (xml) {
				var result = $(xml).find('result').text();
				
				if (result == '0') {
					new Error ('Произошла ошибка!');
				} else {
					var rating = $(xml).find('format').text();
					
					$('#photo_rating > div.number').text(rating);
					
					if (mark == 1) {
						$('#photo_rating > a.minus').addClass('cant');
						$('#photo_rating > a.plus').addClass('voted');
					} else {
						$('#photo_rating > a.minus').addClass('voted');
						$('#photo_rating > a.plus').addClass('cant');
					}
					
					$('#photo_rating > a.minus')
						.attr('onclick', '')
						.click(function() { new Error('Повторное голосование запрещено'); return false; });
					
					$('#photo_rating > a.plus')
						.attr('onclick', '')
						.click(function() { new Error('Повторное голосование запрещено'); return false; });
				}
			}
		});
	}
};

var PhotoEdit = {
	delete: function(albumId, photoId) {
		if (confirm('Вы действительно хотите удалить эту фотографию?')) {
			$.ajax ({
				url:  baseURI + '/photos/ajax_delete_photo/' + photoId + '?scode=' + scode,
				dataType: 'xml',
				type: 'get',
				error: function () { new Error ('Ошибка при удалении фотографии!');  },
				success: function (xml) {
					if (!$(xml).find('result').text()) {
						new Error ('Ошибка при удалении фотографии!');
					} else {
						$('#photo_' + photoId).remove();
						
						if (!$('.edit-photos-list').children().length) {
							document.location.href=baseURI+'/photoalbum/'+albumId;
						}
					}
				}
			});
		}
	},
	
	setAlbumPreview: function(albumId, photoId) {
		$.ajax ({
			url:  baseURI + '/photos/ajax_set_album_preview/' + albumId + '/' + photoId + '?scode=' + scode,
			dataType: 'xml',
			type: 'get',
			error: function () { new Error ('Произошла ошибка!');  },
			success: function (xml) {
				if (!$(xml).find('result').text()) {
					new Error ('Произошла ошибка!');
				} else {
					$('#set_preview_' + photoId)
						.addClass('selected')
						.text('Обложка альбома');
				}
			}
		});
	}
};

/*function setAlbumPreview (albumId, photoId) {
	$.ajax ({
		url:  baseURI + '/photos/ajax_set_album_preview/' + albumId + '/' + photoId + '?scode=' + scode,
		dataType: 'xml',
		type: 'get',
		error: function () { new Error ('Произошла ошибка!');  },
		success: function (xml) {
			var result = $(xml).find('result').text();
			
			if (result == '0') {
				new Error ('Произошла ошибка!');
			} else {
				$('#album_preview_controller_' + photoId).html('');
			}
		}
	});
}*/